home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / Beyond Compare 3.0.10 / BCompareSetup.exe / {app} / Helpers / XLS_to_CSV_Single.vbs < prev   
Text File  |  2008-05-13  |  1KB  |  52 lines

  1. ' XLS_to_CSV_Single.vbs
  2. '
  3. ' Converts <input file> from an Excel workbook to a comma-separated text file
  4. ' and saves the results to <output file>.  Requires Microsoft Excel.
  5. '
  6. ' Usage:
  7. '  WScript XLS_to_CSV_Single.vbs <input file> <output file>
  8.  
  9. ' WdSaveFormat constants, taken from the Word type library
  10. Const xlCSV            = 6    ' Comma-separated values
  11. Const xlUnicodeText        = 42    ' Tab delimited text file
  12.  
  13. ' OpenTextFile iomode constants
  14. Const ForReading = 1
  15. Const ForAppending = 8
  16.  
  17. Dim oFileSys
  18. Dim oExcel
  19. Dim sTmpName
  20. Dim oDesFile, oTmpFile
  21.  
  22. Set oFileSys = CreateObject("Scripting.FileSystemObject")
  23. oFileSys.DeleteFile WScript.Arguments(1)
  24.  
  25. Set oExcel = CreateObject("Excel.Application")
  26.  
  27. On Error Resume Next
  28.  
  29. oExcel.Workbooks.Open WScript.Arguments(0), , True
  30. If Err = 0 Then
  31.     With oExcel.ActiveWorkbook
  32.         If .Sheets.Count = 1 Then
  33.             .SaveAs WScript.Arguments(1), xlCSV
  34.         Else
  35.             Set oDesFile = oFileSys.OpenTextFile( WScript.Arguments(1), ForAppending, True)
  36.             .Sheets(0).Activate
  37.             sTmpName = oFileSys.GetSpecialFolder(2) & "\" & oFileSys.GetTempName
  38.             .SaveAs sTmpName, xlCSV
  39.             Set oTmpFile = oFileSys.OpenTextFile( sTmpName, ForReading )
  40.             oDesFile.Write( oTmpFile.ReadAll )
  41.             oTmpFile.Close
  42.             oFileSys.DeleteFile sTmpName
  43.         End If
  44.         .Close False
  45.     End With
  46. End If
  47.  
  48. oExcel.Quit
  49. If (Err <> 0) and (Err.Description <> NULL) Then
  50.     MsgBox Err.Description, vbExclamation, "Error"
  51.     Err.Clear
  52. End If